﻿#ifndef WRWORKMAINCOMMANDACTIVATOR_H
#define WRWORKMAINCOMMANDACTIVATOR_H

#include "../WRGlobal.h"
#include "../WRWorkMainCommand.h"
#include "../../WRSoft-Utility/Runtime/WRClassActivator.h"
#include <QDomElement>

//工作主命令激活器类型标识 {F279995C-2FD0-4A74-8C7F-46D3DC222A02}
#define WRWorkMainCommandActivatorType QUuid(0xf279995c, 0x2fd0, 0x4a74, 0x8c, 0x7f, 0x46, 0xd3, 0xdc, 0x22, 0x2a, 0x2)

namespace WRTypes
{
    //获取工作主命令激活器类型。
    WRSOFT_GUIAPP_WORKING_COMMON_API WRType* workMainCommandActivator(void);
}

//表示工作主命令创建器。
class WRSOFT_GUIAPP_WORKING_COMMON_CLASS WRWorkMainCommandActivator : public WRClassActivator
{
private:
    //禁用复制构造函数和赋值操作符。
    Q_DISABLE_COPY(WRWorkMainCommandActivator)

protected:
    //初始化工作主命令创建器。
    inline WRWorkMainCommandActivator(void)
    {
        //add code here
    }
    //释放当前对象所占用的相关资源。
    virtual ~WRWorkMainCommandActivator(void)
    {
        //add code here
    }

public:
    //获取当前对象类型。
    WRType* type(void) const;
    //创建工作主命令。
    virtual WRWorkMainCommand* create(const QDomElement& config) = 0;
};

#endif // WRWORKMAINCOMMANDACTIVATOR_H
